package com.zenithmind.user.service;

import com.zenithmind.user.pojo.vo.DashboardStatsVO;
import com.zenithmind.user.pojo.vo.UserGrowthVO;
import com.zenithmind.user.pojo.vo.SystemMetricsVO;
import com.zenithmind.user.pojo.vo.TodayOverviewVO;

import java.util.List;
import java.util.Map;

/**
 * 仪表盘服务接口
 * 
 * @author ZenithMind Team
 * @since 2025-01-09
 */
public interface DashboardService {

    /**
     * 获取仪表盘统计数据
     * 
     * @return 统计数据
     */
    DashboardStatsVO getDashboardStats();

    /**
     * 获取用户增长趋势
     * 
     * @param startDate 开始日期
     * @param endDate 结束日期
     * @param granularity 时间粒度
     * @return 增长趋势数据
     */
    List<UserGrowthVO> getUserGrowthTrend(String startDate, String endDate, String granularity);

    /**
     * 获取系统访问统计
     * 
     * @param startDate 开始日期
     * @param endDate 结束日期
     * @return 访问统计数据
     */
    Map<String, Object> getSystemAccessStats(String startDate, String endDate);

    /**
     * 获取最近活动
     * 
     * @param limit 限制数量
     * @return 活动列表
     */
    List<Map<String, Object>> getRecentActivities(Integer limit);

    /**
     * 获取热门内容
     * 
     * @return 热门内容统计
     */
    Map<String, Object> getPopularContent();

    /**
     * 获取系统性能指标
     * 
     * @return 性能指标
     */
    SystemMetricsVO getSystemMetrics();

    /**
     * 获取实时在线用户数
     * 
     * @return 在线用户数
     */
    Integer getOnlineUsers();

    /**
     * 获取今日数据概览
     * 
     * @return 今日概览数据
     */
    TodayOverviewVO getTodayOverview();
}
